//
//  WelcomeViewController.swift
//  weibo10
//
//  Created by 晁岳山 on 15/10/18.
//  Copyright © 2015年 晁岳山. All rights reserved.
//

import UIKit
import SnapKit
import SDWebImage
class WelcomeViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        /**
        重点：自动布局的动画
        1.更新设置过得约束
        2.在动画内部只需要写self.view.layoutIfNeed即可执行动画
        3.multiplier 这个乘积约束 设置之后就不能修改  属于只读属性
        4.使用自动布局有一个原则：所有使用自动布局的空间  不在设置frame
        原因：自动布局会根据约束 内部自动设置frame  在layoutSubViews中设置
            如果程序员自己设置的话 Xcode中的自动布局系统就会 就会计算错误
        为什么执行这个函数layoutIfNeeded() 就可以实现动画效果
        原因：当有一个运行循环启动  就会收集所有控件的约束的变化， 在运行循环结束前 调用layoutSubviews方法 重新设置控件的frame 
        如果我们想提前更新约束的变化  调用layoutIfNeeded（）方法 这个函数会让自动布局系统更新约束
        */
        view = iconImageView
        setUI()

    }
    //为什么在这个方法内写： 视图已经显示  通常我们可以设置动画/ 键盘处理
    override func viewDidAppear(animated: Bool) {
        //更新约束
        headImageView.snp_updateConstraints { (make) -> Void in
            make.bottom.equalTo(view.snp_bottom).offset(-view.bounds.height + 200)
        }
        welcomeLable.alpha = 0.0
        UIView.animateWithDuration(1.5,
            delay: 0,
            usingSpringWithDamping: 0.7,
            initialSpringVelocity: 10,
            options: [], animations: { () -> Void in
                self.view.layoutIfNeeded()
            }) { (_) -> Void in
                
            UIView.animateWithDuration(0.5, animations: { () -> Void in
                self.welcomeLable.alpha = 1.0
                //延迟发送通知  为了显示label  在pch中定义了
                delay(1.0, callBack: {
                    NSNotificationCenter.defaultCenter().postNotificationName(WBSwitchRootViewControllerNotifycation, object: nil)
                })
            })
                
        }
    }
    //背景图片
    private lazy var iconImageView: UIImageView =  {
        let imgView = UIImageView(image: UIImage(named: "ad_background"))
        return imgView
        }()
    //头像
    private lazy var headImageView: UIImageView = {
        let headImg = UIImageView(image: UIImage(named: "avatar_default_big"))
        headImg.layer.cornerRadius = 45
        headImg.layer.masksToBounds = true
        return headImg
    }()
    //欢迎的label
    private lazy var welcomeLable: UILabel = {
        let l = UILabel(content: "欢迎回来")
        return l
    }()
}
// MARK: - 设置UI
extension WelcomeViewController {
    
    func setUI() {
        view.addSubview(headImageView)
        view.addSubview(welcomeLable)
        
        //设置头像
        let url = UserAccountViewModel.sharedUserViewMModel.avatarURL
        headImageView.sd_setImageWithURL(url, placeholderImage: UIImage(named: "avatar_default_big"))
        //设置约束
        //头像
        headImageView.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(view.snp_centerX)
            make.bottom.equalTo(view.snp_bottom).offset(-200)
            make.width.equalTo(90)
            make.height.equalTo(90)
        }
        //欢迎label
        welcomeLable.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(headImageView.snp_centerX)
            make.top.equalTo(headImageView.snp_bottom).offset(12)
        }

    }
}